// 路由文件
// 导入express
const express = require("express");
const db=require("../lib/db")
// 导入处理用户登录逻辑的js文件
const userLogin = require("../service/userLogin")
// 导入用户注册逻辑js文件
const addUser = require("../service/addUser")
// 导入首页所有作者列表路由逻辑的js文件
const authorsList = require("../service/authorsList")
// 导入获取首页文章数据逻辑的js文件
const articleList= require("../service/articleList")
// 导入文章分类页加载文章列表数据逻辑js文件
const classifyArticleList = require("../service/classifyArticleList")
// 导入个人中心页加载文章列表数据逻辑js文件
const myArticleList = require("../service/myArticleList")
// 导入删除文章逻辑的js文件
const deleteArticleList = require("../service/deleteArticleList")

// 调用express中router方法
const router = express.Router()

// 设置路由登录
router.post("/userLogin",(req,res)=>{
    // 获取用户传递过来的参数
    let params = req.body
    let username = params.userName //用户名
    let userpwd = params.userPassword //密码
    // 调用处理登录逻辑的函数 将用户和密码传递过去
    userLogin(username , userpwd).then(data=>{
        if(data==501){
            res.json({
                status : data ,
                msg : "用户不存在"
            })
            res.end()
        }else if(data==502){
            res.json({
                status : data ,
                msg : "密码错误"
            })
            res.end()
        }else{
            res.json({
                status : 200,
                msg : {_id:Buffer.from(String(data.userId)).toString("base64"),
                    userName:data.userName,
                    headImg:data.headImg}
            })
            res.end()
        }
    })    
})

// 处理用户注册逻辑
router.post("/addUser",(req,res)=>{
    // 获取用户传递过来的参数
    let params = req.body
    let username = params.userName // 用户名
    let userpwd = params.userPassword //密码
    const desc1 = params.adesc 

    // 调用处理登录逻辑的函数 将用户名和密码传递过去
    addUser(username , userpwd,desc1).then(data =>{
        if(data == 404){
            res.json({
                status : 404,
                msg:"注册失败"
            })
            res.end()
        }else{
            res.json({
                status : 200,
                msg:{data
                    }
            }) 
            res.end()
        }
    })
    
})

// 获取首页所有作者列表的路由
router.get("/authorsList" , (req , res) =>{
    // 调用处理逻辑的文件
    authorsList().then(data =>{
        if(data == 404){
            res.json({
                status : data , 
                msg : "作者列表为空"
            })
            res.end()
        }else{
            res.json({
                status : 200 , 
                msg : data
            })
            res.end()
        }
    })
})

// 获取首页文章数据
router.get("/articleList",(req,res)=>{
    articleList().then(data=>{
        if(data==0){
            res.json({
                status:data,
                msg:"作者列表为空"
            })
            res.end()
        }else{
            res.json({
                status:200,
                msg:data
            })           
        }
    })
})

// 文章分类页加载文章列表数据
router.get("/classifyArticleList",(req,res)=>{
    let url1 ="http://"+req.headers.host+req.url;
    let url2 = new URL(url1)
    let params =url2.searchParams;
    var classify=params.get("classify");
    classifyArticleList(classify).then(data=>{
        if(data==4004){
            res.json({
                status:data,
                msg:"文章分类页加载文章列表数据为空"
            })
            // res.end()
        }else{
            res.json({
                status:200,
                msg:data
            })
            res.end()
        }
    })
    
})

// 个人中心页加载文章列表数据
router.get("/myArticleList",(req,res)=>{
    myArticleList().then(data=>{
        if(data==404){
            res.json({
                status:data,
                msg:"文章内容为空"
            })
            res.end()
        }else{
            res.json({
                status:200,
                msg:data
            })
            res.end()
        }
    })
})

// 删除文章
router.get("/deleteArticleList",(req,res)=>{
    let url1 ="http://"+req.headers.host+req.url;
    let url2 = new URL(url1)
    let params =url2.searchParams
    let id = params.get("id")
    deleteArticleList(id).then(data=>{
        if(data == 501){
            res.json({
                status : data,
                msg : "删除失败"
            })
        }else{
            res.json({
                status : 200,
                msg : "true"
            })
        }
    })
})

// 导出
module.exports = router
